background
如果服务器有外网IP,我们可以通过在.jupyter/jupyter_notebook_config.py中设置IP地址,然后再通过IP:port的方式访问。
但是实验室的服务器是内网访问,想要外网访问,必须进行反向代理。一旦进行了反向代理,直接通过浏览器输入服务器ip:port 是无法访问jupyter notebook。
solution
推荐第一种方法
第一种方式(将远程12345端口映射到本机8888端口)
- 登录远程服务器,开启jupyter,端口为12345
- 需要访问的Linux中终端输入:ssh -N -f -L localhost:8888:localhost:12345 -p 29 fudan@123.45.6.7
- 第一个locahost:8888是指本地
- 第二个localhost:12345是指远程,其中12345是jupyter notebook中设置的端口
- -p 29是指登录服务器的端口号
- 后面用户名和服务器ip
- 打开浏览器,输入127.0.0.1:8888就可以看到熟悉的jupyter notebook界面,可以愉快的用服务器跑各种实验了,解放本地电脑
总结一下就是,将服务器上的12345端口映射到本机的8888端口,当然更简单直观的方式直接将远程的12345端口映射到本机的12345端口,也就是第二种方法
通过xshell的添加隧道
请参考这篇博文